import java.io.FileReader;
import java.io.IOException;

/**
 * FileReader用来将文本文档当中的字符读到程序当中\
 * 导包:
 * import java.io.FileReader;
 * 创建使用
 * public FileReader(String fileName);
 * FileReader fr=new FileReader("fileXxx.txt");
 * 如果指定的文件不存在,那么将会自动直接报错
 * 使用
 * 读取单个字符:public int read();
 * 关闭释放资源:public void close();
 * 创,写,关
 * *
 */
public class ReaderIO {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("file01.txt");

        //一个个的读取
      int ch;
        while ((ch = fr.read()) != -1) {
            System.out.print((char) ch);
        }
        fr.close();
        System.out.println("\n************************");

        //数组读取
        FileReader fr1 = new FileReader("file02.txt");
        char[] buf = new char[2];//一次性读取2个字符
        int len = fr1.read(buf);
        System.out.println("len=" + len);//读取到了两个字符
        String str = new String(buf, 0, len);//根据字符创建数组
        System.out.println("str=" + str);

        len = fr1.read(buf);
        System.out.println("len=" + len);//读取到了两个字符
        str = new String(buf, 0, len);//根据字符创建数组
        System.out.println("str=" + str);

        len = fr1.read(buf);
        System.out.println("len=" + len);//读取到了两个字符
        str = new String(buf, 0, len);//使用字符数组当中的有效部分来创建字符串
        System.out.println("str=" + str);
        System.out.println("\n************************");

        fr.close();

        //简化数组读取
        FileReader fr2 = new FileReader("file02.txt");
        char[] buf1 = new char[2];//一次性读取2个字符
        int len1;
        while ((len1=fr2.read(buf1))!=-1){
            String str1 = new String(buf, 0, len1);
            System.out.print(str1);
        }
        fr.close();
    }
}
